草庐IT

c++ - SIMD C++ 库

全部标签

c - win32 : How to calculate control sizes for a consistent look across windows versions/themes?

正在处理一个简单的cGUI库,我从winapi开始后端,现在在计算控件的首选大小时遇到​​一些问题。我正在将我的结果与Windows.Forms的结果进行比较。现在,我正在使用DesignSpecificationsandGuidelines-VisualDesignLayout中的值(例如按钮和文本框是14个“对话框逻辑单元”高)用于计算winapi中的像素大小实现,同时使用Windows窗体保持所有默认值。我创建了这些简单的演示实现:Windows窗体(demo.cs):usingSystem.Drawing;usingSystem.Windows.Forms;namespaceW

c++ - Windows 中的启动画面

如何在Windows中使用C或C++显示启动画面?哪些库或Windows组件适用? 最佳答案 闪屏通常只是一个无模式对话框,其表面覆盖着一个静态图片控件,或者甚至只是一个普通窗口,它加载位图并将其blits到其客户区。CodeProject有后一种的例子。它使用MFC,但它是Win32API的一个足够薄的包装器,重写它以直接使用Win32应该相当简单。 关于c++-Windows中的启动画面,我们在StackOverflow上找到一个类似的问题: https:

我可以通过检查 DLL 本身来判断使用哪个版本的 Visual Studio 来构建 DLL

我需要重建多年前构建的DLL。我有原始C源代码,但没有VisualStudio项目或解决方案。我想尝试使用最初使用的相同VisualStudio版本重建它。我可以看出这是一个普通的旧WindowsDLL,而不是.NET。我也知道源代码在C中。通过检查DLL二进制文件,我还能了解有关原始构建环境和工具的其他信息吗?谢谢! 最佳答案 当然,这是完全可能的。关键是所有PE格式的图像(可执行二进制文件的Windows格式,包括DLL和EXE)都有包含属性和有关二进制文件本身的其他信息的header。Microsoft的工具链总是在该head

c++ - 堆栈独立的 c/c++ 蓝牙 api?

我想知道是否有适用于Windows(XP、Vista、7、x86和x64)的独立于堆栈的C/C++蓝牙API。我的目标是创建连接并通过蓝牙发送/接收一些时间关键数据。我的研究为我提供了以下选项,但对于这项任务而言存在劣势:Windows蓝牙套接字仅适用于微软蓝牙堆栈使用COM端口(CreateFile/ReadFile/...)比套接字选项慢,用户必须先连接到设备。使用依赖于堆栈的API这将需要检测使用的堆栈并为每个堆栈创建读/写函数。非常耗时,我不知道是否有可能支持所有堆栈编写KMDF驱动程序我考虑编写一个功能驱动程序来直接与应该独立于堆栈的蓝牙HCI驱动程序对话。这将非常耗时,因为

java - Windows 上的无缓冲子进程标准输出

有没有一种简单的方法可以无缓冲地读取子进程的输出?我正在尝试从Java调用C程序,但显然它在连接到管道时是标准输出block缓冲的,仅在连接到控制台时是行缓冲的。我无法修改C程序。也许有一种方法可以让程序认为它已连接到控制台?也适用于Linux的解决方案的奖励积分。 最佳答案 这不是一个很好的解决方案,但运行时库可能不会缓冲串行端口,所以如果你非常绝望,你可以使用零调制解调器模拟器,例如com0com或其衍生物。 关于java-Windows上的无缓冲子进程标准输出,我们在StackOv

c - setlocale 卡在 Windows 上

setlocale(LC_ALL,"uk-UA")有时我会因未知原因挂起/死锁。调用堆栈是:ntdll.dll!_ZwWaitForSingleObject@12()Unknownntdll.dll!_RtlpWaitOnCriticalSection@8()Unknownntdll.dll!_RtlEnterCriticalSection@4()Unknownntdll.dll!_LdrpLoadDll@28()Unknownntdll.dll!_LdrLoadDll@16()UnknownKernelBase.dll!_LoadLibraryExW@12()Unknownucrtb

C 结构对齐和跨编译器的可移植性

假设下面的头文件对应,例如,一个共享库。导出的函数采用指向此header中定义的自定义结构的指针://lib.htypedefstruct{charc;doubled;inti;}A;DLL_EXPORTvoidf(A*p);如果共享库是使用一个编译器构建的,然后从使用另一个编译器构建的C代码中使用,则它可能无法工作,因为内存对齐方式不同,如MemoryalignmentinC-structs建议。那么,有没有办法让我的结构定义在同一平台上的不同编译器之间可移植?我对Windows平台特别感兴趣(显然它没有明确定义的ABI),但也很想了解其他平台。 最佳答案

c - 在命令行上创建然后链接到 Win32 DLL 的确切步骤是什么?

这是我的库Lib.c文件:#includeinthelloworld(){printf("HelloWorldDLL");}这是我的exeMain.c文件:inthelloworld();intmain(intargc,char**argv){helloworld();}我想创建Lib.dll和Main.exe,其中Lib.dll来自Lib.c和Main.exe链接到Lib.dll。实现这一目标的具体步骤是什么? 最佳答案 参见this有关如何构建DLL的相关问题。您的库代码不会导出任何符号,您的可执行文件也不会从您的库中导入符号。

c++ - UNICODE、UTF-8 和 Windows 困惑

我正在尝试在Windows中实现文本支持,并打算稍后迁移到Linux平台。以统一的方式支持国际语言是最理想的,但考虑到所讨论的两个平台,这似乎并不容易实现。我花了相当多的时间阅读UNICODE、UTF-8(和其他编码)、widechars等,这是我到目前为止所了解的内容:作为标准,UNICODE描述了可映射的字符集及其出现的顺序。我将其称为“什么”:UNICODE指定什么可用。UTF-8(和其他编码)指定如何:每个字符如何以二进制格式表示。现在,在windows上,他们本来选择了UCS-2编码,但是不能满足要求,所以他们有UTF-16,必要时也是多字符。所以这里是困境:Windows内

c - C 中的 "CALLBACK"声明有什么作用?

我正在查看SDL中的一些代码库并遇到了一个像这样声明的函数:LRESULTCALLBACKWndProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam)现在,我是一名Delphi程序员。没有habloCmuybien,先生。但我记得大学类(class)中的语法足够像这样阅读:函数名称是WndProc。参数列表是不言自明的。函数返回类型是LRESULT。但是那个“CALLBACK”到底在做什么呢?在Delphi中,任何函数都可以作为回调;你只需要传递正确类型的函数指针。C不能那样工作有什么特别的原因吗?还是有什么不同的意思?